Ext.define('Ssimgres.controller.Administradores', {
    extend: 'Ext.app.Controller',
    views: ['administradores.AdministradoresView', 'administradores.NuevoAdministradorView'],
    stores: ['Administradores'],
    requires: ['Ext.MD5'],
    refs: [{
            ref: 'administradoresView',
            selector: 'administradoresView'
        }, {
            ref: 'nuevoAdministradorView',
            selector: 'nuevoAdministradorView'
        }],
    init: function() {
        this.control({
            'nuevoAdministradorView button[action=btnCancelar]': {
                click: this.cancelarNuevoAdministrador
            },
            'nuevoAdministradorView button[action=btnGuardar]': {
                click: this.guardarNuevoAdministrador
            },
            'administradoresView button[action=btnNuevoAdministrador]': {
                click: this.nuevoAdministradorView
            }
        });
    },
    cancelarNuevoAdministrador: function() {
        this.getNuevoAdministradorView().close();
    },
    guardarNuevoAdministrador: function() {
        var form = this.getNuevoAdministradorView().down('form').getForm();
        var clave = form.findField("clave");
        var clave_confirmada = form.findField("clave_confirmada");

        if (form.isValid()) {
            if (clave.getValue() != clave_confirmada.getValue()) {
                Ext.Msg.show({
                    title: 'Atención',
                    msg: 'Las contrseñas deben ser iguales',
                    buttons: Ext.Msg.OK,
                    icon: Ext.Msg.WARNING
                });
            } else {
                clave.setValue(Ext.MD5.encode(clave.getValue()));
                clave_confirmada.setValue(Ext.MD5.encode(clave_confirmada.getValue()));
                form.submit({
                    scope: this,
                    url: '/servicio_administrador/guardar_administrador',
                    waitMsg: 'Guardando administrador...',
                    success: function(form, action) {
                        Ext.Msg.show({
                            title: 'Atención',
                            msg: 'Administrador guardado exitosamente',
                            buttons: Ext.Msg.OK,
                            icon: Ext.Msg.INFO
                        });
                        this.getNuevoAdministradorView().close();
                        this.getAdministradoresStore().load();
                    },
                    failure: function(form, action) {
                        clave.setValue();
                        clave_confirmada.setValue();
                        Ext.Msg.show({
                            title: 'Error',
                            msg: action.result.msg,
                            buttons: Ext.Msg.OK,
                            icon: Ext.Msg.ERROR
                        });
                    }
                });
            }
        } else {
            Ext.Msg.show({
                title: 'Atención',
                msg: 'Verifica los campos del formulario',
                buttons: Ext.Msg.OK,
                icon: Ext.Msg.WARNING
            });
        }

    },
    nuevoAdministradorView: function() {
        Ext.widget('nuevoAdministradorView').show();
    }
});
